$(function () {

  // init code editor
  var codeEditor;

  function initIde(glueSource) {
    if (codeEditor == null) {
      codeEditor = CodeMirror(document.getElementById("ideWindow"), {
        mode: ideMode,
        lineNumbers: true,
        matchBrackets: true,
        value: glueSource
      });
    } else {
      codeEditor.setValue(glueSource);
    }
  }

  initIde($("#version_now").val());

  // code change
  $(".source_version").click(function () {
    var sourceId = $(this).attr('version');
    var temp = $("#" + sourceId).val();

    //codeEditor.setValue('');
    initIde(temp);
  });

  // code source save
  $("#save").click(function () {
    $('#saveModal').modal({backdrop: false, keyboard: false}).modal('show');
  });

  $("#saveModal .ok").click(function () {

    var glueSource = codeEditor.getValue();
    var glueRemark = $("#glueRemark").val();

    if (!glueRemark) {
      layer.open({
        title: I18n.system_tips,
        btn: [I18n.system_ok],
        content: I18n.system_please_input + I18n.jobinfo_glue_remark,
        icon: '2'
      });
      return;
    }
    if (glueRemark.length < 4 || glueRemark.length > 100) {
      layer.open({
        title: I18n.system_tips,
        btn: [I18n.system_ok],
        content: I18n.jobinfo_glue_remark_limit,
        icon: '2'
      });
      return;
    }

    $.ajax({
      type: 'POST',
      url: base_url + '/jobcode/save',
      data: {
        'id': id,
        'glueSource': glueSource,
        'glueRemark': glueRemark
      },
      dataType: "json",
      success: function (data) {
        if (data.code == 200) {
          layer.open({
            title: I18n.system_tips,
            btn: [I18n.system_ok],
            content: (I18n.system_save + I18n.system_success),
            icon: '1',
            end: function (layero, index) {
              //$(window).unbind('beforeunload');
              window.location.reload();
            }
          });
        } else {
          layer.open({
            title: I18n.system_tips,
            btn: [I18n.system_ok],
            content: (data.msg || (I18n.system_save + I18n.system_fail)),
            icon: '2'
          });
        }
      }
    });

  });

  // before upload
  /*$(window).bind('beforeunload',function(){
    return 'Glue尚未保存，确定离开Glue编辑器？';
  });*/

});
